<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Rule-based system</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Rule-based_system"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Rule-based_system rootpage-Rule-based_system skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Rule-based system</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<p>In <a href="Computer_science" title="Computer science">computer science</a>, a <b>rule-based system</b> is a computer system in which domain-specific <a href="Knowledge_representation" class="mw-redirect" title="Knowledge representation">knowledge is represented</a> in the form of rules and general-purpose <a href="Reasoning_system" title="Reasoning system">reasoning</a> is used to solve problems in the domain.
</p><p>Two different kinds of rule-based systems emerged within the field of <a href="Artificial_intelligence" title="Artificial intelligence">artificial intelligence</a> in the 1970s:
</p>
<ul><li><a href="Production_system_(computer_science)" title="Production system (computer science)">Production systems</a>, which use <i>if-then rules</i> to derive <i>actions</i> from <i>conditions</i>.</li>
<li><a href="Logic_programming" title="Logic programming">Logic programming</a> systems, which use <i>conclusion if conditions rules</i> to derive <i>conclusions</i> from <i>conditions</i>.</li></ul>
<p>The differences and relationships between these two kinds of rule-based system has been a major source of misunderstanding and confusion.
</p><p>Both kinds of rule-based systems use either <a href="Forward_chaining" title="Forward chaining">forward</a> or <a href="Backward_chaining" title="Backward chaining">backward chaining</a>, in contrast with <a href="Imperative_programming_language" class="mw-redirect" title="Imperative programming language">imperative programs</a>, which execute commands listed sequentially. However, logic programming systems have a logical interpretation, whereas production systems do not.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Production_system_rules">Production system rules</h2></div>
<p>A classic example of a production rule-based system is the domain-specific <a href="Expert_system" title="Expert system">expert system</a> that uses rules to make deductions or choices.<sup id="cite_ref-GrosanAbraham2011_1-0" class="reference"><a href="#cite_note-GrosanAbraham2011-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> For example, an expert system might help a doctor choose the correct diagnosis based on a cluster of symptoms, or select tactical moves to play a game.
</p><p>Rule-based systems can be used to perform <a href="Lexical_analysis" title="Lexical analysis">lexical analysis</a> to <a href="Compiler" title="Compiler">compile</a> or <a href="Interpreter_(computing)" title="Interpreter (computing)">interpret</a> computer programs, or in <a href="Natural_language_processing" title="Natural language processing">natural language processing</a>.<sup id="cite_ref-Chan2014_2-0" class="reference"><a href="#cite_note-Chan2014-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>Rule-based programming attempts to derive execution instructions from a starting set of data and rules. This is a more indirect method than that employed by an <a href="Imperative_programming_language" class="mw-redirect" title="Imperative programming language">imperative programming language</a>, which lists execution steps sequentially.
</p>
<div class="mw-heading mw-heading3"><h3 id="Construction">Construction</h3></div>
<p>A typical rule-based system has four basic components:<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li>A list of rules or <b>rule base</b>, which is a specific type of <a href="Knowledge_base" title="Knowledge base">knowledge base</a>.</li>
<li>An <a href="Inference_engine" title="Inference engine">inference engine</a> or <a href="Semantic_reasoner" title="Semantic reasoner">semantic reasoner</a>, which infers information or takes action based on the interaction of input and the rule base. The interpreter executes a <a href="Production_system_(computer_science)" title="Production system (computer science)">production system</a> program by performing the following match-resolve-act cycle:<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup></li></ul>
<dl><dd><ul><li>Match: In this first phase, the condition sides of all productions are matched against the contents of working memory. As a result a set (the <i>conflict set</i>) is obtained, which consists of instantiations of all satisfied productions. An instantiation of a production is an ordered list of working memory elements that satisfies the condition side of the production.</li>
<li><a href="Conflict_resolution_strategy" title="Conflict resolution strategy">Conflict-resolution</a>: In this second phase, one of the production instantiations in the conflict set is chosen for execution. If no productions are satisfied, the interpreter halts.</li>
<li>Act: In this third phase, the actions of the production selected in the conflict-resolution phase are executed. These actions may change the contents of working memory. At the end of this phase, execution returns to the first phase.</li></ul></dd></dl>
<ul><li>Temporary <a href="Working_memory" title="Working memory">working memory</a>, which is a database of facts.</li>
<li>A <a href="User_interface" title="User interface">user interface</a> or other connection to the outside world through which input and output signals are received and sent.</li></ul>
<p>Whereas the matching phase of the inference engine has a logical interpretation, the conflict resolution and action phases do not. Instead, "their semantics is usually described as a series of applications of various state-changing operators, which often gets quite involved (depending on the choices made in deciding which ECA rules fire, when, and so forth), and they can hardly be regarded as declarative".<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Logic_programming_rules">Logic programming rules</h2></div>
<p>The logic programming family of computer systems includes the programming language <a href="Prolog" title="Prolog">Prolog</a>, the database language <a href="Datalog" title="Datalog">Datalog</a> and the knowledge representation and problem-solving language <a href="Answer_set_programming" title="Answer set programming">Answer Set Programming</a> (ASP). In all of these languages, rules are written in the form of <i><a href="Clause_(logic)" title="Clause (logic)">clauses</a></i>:
</p>
<dl><dd><code>A :- B<sub>1</sub>, ..., B<sub>n</sub>.</code></dd></dl>
<p>and are read as declarative sentences in logical form:
</p>
<dl><dd><code>A if B<sub>1</sub> and ... and B<sub>n</sub>.</code></dd></dl>
<p>In the simplest case of <a href="Horn_clause" title="Horn clause">Horn clauses</a> (or "definite" clauses), which are a subset of <a href="First-order_logic" title="First-order logic">first-order logic</a>, all of the A, B<sub>1</sub>, ..., B<sub>n</sub> are <a href="Atomic_formula" title="Atomic formula">atomic formulae</a>.
</p><p>Although Horn clause logic programs are <a href="Turing_completeness" title="Turing completeness"> Turing complete</a>,<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> for many practical applications, it is useful to extend Horn clause programs by allowing negative conditions, implemented by <a href="Negation_as_failure" title="Negation as failure">negation as failure</a>. Such extended logic programs have the knowledge representation capabilities of a <a href="Non-monotonic_logic" title="Non-monotonic logic">non-monotonic logic</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Differences_and_relationships_between_production_rules_and_logic_programming_rules">Differences and relationships between production rules and logic programming rules</h2></div>
<p>The most obvious difference between the two kinds of systems is that production rules are typically written in the forward direction, <i>if A then B</i>, and logic programming rules are typically written in the backward direction, <i>B if A</i>. In the case of logic programming rules, this difference is superficial and purely syntactic. It does not affect the semantics of the rules. Nor does it affect whether the rules are used to reason backwards, Prolog style, to reduce the goal <i>B</i> to the subgoals <i>A</i>, or whether they are used, Datalog style, to derive <i>B</i> from <i>A</i>.
</p><p>In the case of production rules, the forward direction of the syntax reflects the stimulus-response character of most production rules, with the stimulus <i>A</i> coming before the response <i>B</i>. Moreover, even in cases when the response is simply to draw a conclusion <i>B</i> from an assumption <i>A</i>, as in <a href="Modus_ponens" title="Modus ponens">modus ponens</a>, the match-resolve-act cycle is restricted to reasoning forwards from <i>A</i> to <i>B</i>. Reasoning backwards in a production system would require the use of an entirely different kind of inference engine.
</p><p>In his Introduction to Cognitive Science,<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> <a href="Paul_Thagard" title="Paul Thagard">Paul Thagard</a> includes logic and rules as alternative approaches to modelling human thinking. He does not consider logic programs in general, but he considers Prolog to be, not a rule-based system, but "a programming language that uses logic representations and deductive techniques" (page 40).
</p><p>He argues that rules, which have the form <i>IF condition THEN action</i>, are "very similar" to logical conditionals, but they are simpler and have greater psychological plausibility (page 51). Among other differences between logic and rules, he argues that logic uses deduction, but rules use search (page 45) and can be used to reason either forward or backward (page 47). Sentences in logic "have to be interpreted as <i>universally true</i>", but rules can be <i>defaults</i>, which admit exceptions (page 44). He does not observe that all of these features of rules apply to logic programming systems.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Logic_programming" title="Logic programming">Logic programming</a></li>
<li><a href="Expert_systems" class="mw-redirect" title="Expert systems">Expert systems</a></li>
<li><a href="Rewriting" title="Rewriting">Rewriting</a></li>
<li><a href="RuleML" title="RuleML">RuleML</a></li>
<li><a href="List_of_rule-based_languages" class="mw-redirect" title="List of rule-based languages">List of rule-based languages</a></li>
<li><a href="Learning_classifier_system" title="Learning classifier system">Learning classifier system</a></li>
<li><a href="Rule-based_machine_learning" title="Rule-based machine learning">Rule-based machine learning</a></li>
<li><a href="Rule-based_modeling" title="Rule-based modeling">Rule-based modeling</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-GrosanAbraham2011-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-GrosanAbraham2011_1-0">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFCrina_GrosanAjith_Abraham2011" class="citation book cs1">Crina Grosan; Ajith Abraham (29 July 2011). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=c1fzgQj5lhkC&pg=PA149"><i>Intelligent Systems: A Modern Approach</i></a>. Springer Science & Business Media. pp. 149–. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-642-21004-4</bdi>.</cite></span>
</li>
<li id="cite_note-Chan2014-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-Chan2014_2-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFSin-Wai_Chan2014" class="citation book cs1">Sin-Wai Chan (13 November 2014). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=S0FWBQAAQBAJ&pg=PA454"><i>Routledge Encyclopedia of Translation Technology</i></a>. Routledge. pp. 454–. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-1-317-60815-8</bdi>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.j-paine.org/students/lectures/lect3/node5.html">"What is a rule-based system?"</a>. <i>j-paine.org</i>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite id="CITEREFCabitzaSariniDal_Seno2005" class="citation book cs1">Cabitza, F.; Sarini, M.; Dal Seno, B. (2005). "DJess - a context-sharing middleware to deploy distributed inference systems in pervasive computing domains". <i>ICPS '05. Proceedings. International Conference on Pervasive Services, 2005</i>. Vol. 2. pp. <span class="nowrap">66–</span>69. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FPERSER.2005.1506416">10.1109/PERSER.2005.1506416</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-7803-9032-6</bdi>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:27323155">27323155</a>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text">Maier, D., Tekle, K.T., Kifer, M. and Warren, D.S., 2018. Datalog: concepts, history, and outlook. In Declarative Logic Programming: Theory, Systems, and Applications (pp. 3-100).</span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite id="CITEREFTärnlund1977" class="citation journal cs1">Tärnlund, S.Å. (1977). "Horn clause computability". <i><a href="BIT_Numerical_Mathematics" title="BIT Numerical Mathematics">BIT Numerical Mathematics</a></i>. <b>17</b> (2): <span class="nowrap">215–</span>226. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2FBF01932293">10.1007/BF01932293</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:32577496">32577496</a>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite id="CITEREFAndrékaNémeti1978" class="citation journal cs1">Andréka, H.; Németi, I. (1978). <a rel="nofollow" class="external text" href="https://cyber.bibl.u-szeged.hu/index.php/actcybern/article/view/3160">"The generalised completeness of Horn predicate-logic as a programming language"</a>. <i>Acta Cybernetica</i>. <b>4</b> (1): <span class="nowrap">3–</span>10.</cite></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite id="CITEREFThagard2005" class="citation book cs1">Thagard, Paul (2005). <i>Mind: Introduction to Cognitive Science</i>. The MIT Press. p. 11. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>9780262701099</bdi>.</cite></span>
</li>
</ol></div></div>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Types_of_programming_languages107" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div id="Types_of_programming_languages107" style="font-size:114%;margin:0 4em"><a href="Programming_paradigm" title="Programming paradigm">Types of programming languages</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Level</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Machine_code" title="Machine code">Machine</a></li>
<li><a href="Assembly_language" title="Assembly language">Assembly</a></li>
<li><a href="Compiled_language" title="Compiled language">Compiled</a></li>
<li><a href="Interpreted_language" class="mw-redirect" title="Interpreted language">Interpreted</a></li></ul>
<ul><li><a href="Low-level_programming_language" title="Low-level programming language">Low-level</a></li>
<li><a href="High-level_programming_language" title="High-level programming language">High-level</a></li>
<li><a href="Very_high-level_programming_language" title="Very high-level programming language">Very high-level</a></li>
<li><a href="Esoteric_programming_language" title="Esoteric programming language">Esoteric</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Programming_language_generations" title="Programming language generations">Generation</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="First-generation_programming_language" title="First-generation programming language">First</a></li>
<li><a href="Second-generation_programming_language" title="Second-generation programming language">Second</a></li>
<li><a href="Third-generation_programming_language" title="Third-generation programming language">Third</a></li>
<li><a href="Fourth-generation_programming_language" title="Fourth-generation programming language">Fourth</a></li>
<li><a href="Fifth-generation_programming_language" title="Fifth-generation programming language">Fifth</a></li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox" aria-labelledby="Semantic_Web71" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Semantic_Web71" style="font-size:114%;margin:0 4em"><a href="Semantic_Web" title="Semantic Web">Semantic Web</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Background</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Database" title="Database">Databases</a></li>
<li><a href="Hypertext" title="Hypertext">Hypertext</a></li>
<li><a href="Internet" title="Internet">Internet</a></li>
<li><a href="Ontology_(information_science)" title="Ontology (information science)">Ontologies</a></li>
<li><a href="Semantics_(computer_science)" title="Semantics (computer science)">Semantics</a></li>
<li><a href="Semantic_network" title="Semantic network">Semantic networks</a></li>
<li><a href="World_Wide_Web" title="World Wide Web">World Wide Web</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Sub-topics</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Dataspaces" class="mw-redirect" title="Dataspaces">Dataspaces</a></li>
<li><a href="Hyperdata" title="Hyperdata">Hyperdata</a></li>
<li><a href="Linked_data" title="Linked data">Linked data</a></li>
</ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Applications</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Semantic_analytics" title="Semantic analytics">Semantic analytics</a></li>
<li><a href="Semantic_computing" title="Semantic computing">Semantic computing</a></li>
<li><a href="Semantic_mapper" title="Semantic mapper">Semantic mapper</a></li>
<li><a href="Semantic_matching" title="Semantic matching">Semantic matching</a></li>
<li><a href="Semantic_publishing" title="Semantic publishing">Semantic publishing</a></li>
<li><a href="Semantic_reasoner" title="Semantic reasoner">Semantic reasoner</a></li>
<li><a href="Semantic_search" title="Semantic search">Semantic search</a></li>
<li><a href="Semantic_service-oriented_architecture" title="Semantic service-oriented architecture">Semantic service-oriented architecture</a></li>
<li><a href="Semantic_wiki" title="Semantic wiki">Semantic wiki</a></li>
<li><a href="Solid_(web_decentralization_project)" title="Solid (web decentralization project)">Solid</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Related topics</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Collective_intelligence" title="Collective intelligence">Collective intelligence</a></li>
<li><a href="Description_logic" title="Description logic">Description logic</a></li>
<li><a href="Folksonomy" title="Folksonomy">Folksonomy</a></li>
<li><a href="Geotagging" title="Geotagging">Geotagging</a></li>
<li><a href="Information_architecture" title="Information architecture">Information architecture</a></li>
<li><a href="IXBRL" class="mw-redirect" title="IXBRL">iXBRL</a></li>
<li><a href="Knowledge_extraction" title="Knowledge extraction">Knowledge extraction</a></li>
<li><a href="Knowledge_management" title="Knowledge management">Knowledge management</a></li>
<li><a href="Knowledge_representation_and_reasoning" title="Knowledge representation and reasoning">Knowledge representation and reasoning</a></li>
<li><a href="Library_2.0" title="Library 2.0">Library 2.0</a></li>
<li><a href="Digital_library" title="Digital library">Digital library</a></li>
<li><a href="Digital_humanities" title="Digital humanities">Digital humanities</a></li>
<li><a href="Metadata" title="Metadata">Metadata</a></li>
<li><a href="Reference_(computer_science)" title="Reference (computer science)">References</a></li>
<li><a href="Topic_map" title="Topic map">Topic map</a></li>
<li><a href="Web_2.0" title="Web 2.0">Web 2.0</a></li>
<li><a href="Web_engineering" title="Web engineering">Web engineering</a></li>
<li><a href="Web_Science_Trust" title="Web Science Trust">Web Science Trust</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Standards</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Syntax and supporting technologies</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="HTTP" title="HTTP">HTTP</a></li>
<li><a href="Internationalized_Resource_Identifier" title="Internationalized Resource Identifier">IRI</a>
<ul><li><small><a href="Uniform_Resource_Identifier" title="Uniform Resource Identifier">URI</a></small></li></ul></li>
<li><a href="Resource_Description_Framework" title="Resource Description Framework">RDF</a>
<ul><li><small><a href="Semantic_triple" title="Semantic triple">triples</a></small></li>
<li><small><a href="RDF/XML" title="RDF/XML">RDF/XML</a></small></li>
<li><small><a href="JSON-LD" title="JSON-LD">JSON-LD</a></small></li>
<li><small><a href="Turtle_(syntax)" title="Turtle (syntax)">Turtle</a></small></li>
<li><small><a href="TriG_(syntax)" title="TriG (syntax)">TriG</a></small></li>
<li><small><a href="Notation3" title="Notation3">Notation3</a></small></li>
<li><small><a href="N-Triples" title="N-Triples">N-Triples</a></small></li>
<li><small><a href="TriX_(serialization_format)" title="TriX (serialization format)">TriX</a> (no W3C standard)</small></li></ul></li>
<li><a href="Research_Resource_Identifier" class="mw-redirect" title="Research Resource Identifier">RRID</a></li>
<li><a href="SPARQL" title="SPARQL">SPARQL</a></li>
<li><a href="XML" title="XML">XML</a></li>
<li><a href="Semantic_HTML" title="Semantic HTML">Semantic HTML</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Schemas, ontologies and rules</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Common_Logic" title="Common Logic">Common Logic</a></li>
<li><a href="Web_Ontology_Language" title="Web Ontology Language">OWL</a></li>
<li><a href="RDF_Schema" title="RDF Schema">RDFS</a></li>
<li><a href="Rule_Interchange_Format" title="Rule Interchange Format">Rule Interchange Format</a></li>
<li><a href="Semantic_Web_Rule_Language" title="Semantic Web Rule Language">Semantic Web Rule Language</a></li>
<li><a href="SHACL" title="SHACL">SHACL</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Semantic annotation</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="COinS" title="COinS">COinS</a></li>
<li><a href="GRDDL" title="GRDDL">GRDDL</a></li>
<li><a href="Microdata_(HTML)" title="Microdata (HTML)">Microdata</a></li>
<li><a href="Microformat" title="Microformat">Microformats</a></li>
<li><a href="RDFa" title="RDFa">RDFa</a></li>
<li><a href="SAWSDL" title="SAWSDL">SAWSDL</a></li>
<li><a href="Facebook_Platform" title="Facebook Platform">Facebook Platform</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Common vocabularies</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="BIBFRAME" title="BIBFRAME">BIBFRAME</a></li>
<li><a href="Bibliographic_Ontology" title="Bibliographic Ontology">BIBO</a></li>
<li><a href="DOAP" title="DOAP">DOAP</a></li>
<li><a href="Dublin_Core" title="Dublin Core">Dublin Core</a></li>
<li><a href="Metadata_Object_Description_Schema" title="Metadata Object Description Schema">MODS</a>/<a href="Metadata_Authority_Description_Schema" title="Metadata Authority Description Schema">MADS</a></li>
<li><a href="FOAF" title="FOAF">FOAF</a></li>
<li><a href="Schema.org" title="Schema.org">Schema.org</a></li>
<li><a href="Semantically_Interlinked_Online_Communities" title="Semantically Interlinked Online Communities">SIOC</a></li>
<li><a href="Simple_Knowledge_Organization_System" title="Simple Knowledge Organization System">SKOS</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Microformat vocabularies</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="HAtom" title="HAtom">hAtom</a></li>
<li><a href="HCalendar" title="HCalendar">hCalendar</a></li>
<li><a href="HCard" title="HCard">hCard</a></li>
<li><a href="HProduct" title="HProduct">hProduct</a></li>
<li><a href="HRecipe" title="HRecipe">hRecipe</a></li>
<li><a href="HReview" title="HReview">hReview</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-07-27" href="https://en.wikipedia.org/wiki/?title=Rule-based_system&oldid=1302865249">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>